/**
 *封装(复用) 封装全局axios请求方法
 *步骤:
*1.导入axios
*2.使用工厂函数:axios.create()方法创建axios实例
*3.给新创建的axios实例添加请求和响应拦截器
*4.导出创建的新axios实例
 */
import axios from 'axios'

const request = axios.create({
  baseURL: 'http://geek.itheima.net/v1_0/'
})

// 添加请求拦截器 => 发请求之前执行
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么? => 在发送请求之前同一给header(请求头),发送token
  // config函数在发送请求之前ok的就会走第一个函数,如果发送请求之前有错误就会走第二个函数
  return config
}, function (error) {
  // 对请求错误做些什么
  console.log('error的token', error)
  return Promise.reject(error)
})

// 添加响应拦截器  =>请求发送之后,后端响应执行response函数(响应拦截器)
request.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  return response
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error)
})

// 导出
export default request
